package io;

import java.io.*;

/*
  通过提高每次读写的数据量减少实际读写的次数，可以提供读写的效率
  一组字节的读写:
 */
public class CopyDemo2 {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("xy.jpg");
        FileOutputStream fos = new FileOutputStream("xy_cp2.jpg");
        /*
          InputStream超类中定义了块读取数据的方法:
          int read(byte[] data)

         */
        long start = System.currentTimeMillis();
        byte[] data = new byte[1024*10];//10kb
        int len;
        while((len = fis.read(data))!=-1){//每次读取10kb并判断是否读取到了末尾
            fos.write(data,0,len);//一次写入10kb数据
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完毕!耗时:"+(end-start)+"ms");

        fis.close();
        fos.close();



















        /*
        FileInputStream fis = new FileInputStream("xy.jpg");
        FileOutputStream fos = new FileOutputStream("xy_cp2.jpg");

        long start = System.currentTimeMillis();
        byte[] data = new byte[1024*10];//10kb
        while(fis.read(data)!=-1){//每次读取10kb并判断是否读取到了末尾
            fos.write(data);//一次写入10kb数据
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完毕!耗时:"+(end-start)+"ms");

        fis.close();
        fos.close();

         */
    }
}
